Мой Справочник | PHP | Docker

Установка на Linux
Установка на Linux

Установка Docker


1 вариант (Edge):

curl -sSL https://get.docker.com/ | sh

2 вариант:

Скрипт для установки на Linux: http://get.docker.com

Копируем curl -fsSL get.docker.com -o get-docker.sh,
запускаем-сохраняем-выполняем скрипт

sh get-docker.sh

Добавить Docker в группу

sudo usermod -aG docker effectiveuser
whoami

Проверка установки:

docker version || sudo docker version

Нужно залогиниться:

docker login

Ввести логин и пароль от Docker Hub

Docker-Docs
Docker контейнер - это не ВМ, это процесс который запускается в фоне
3 вариант (c docker-compose) sh install.sh install.sh
Docker-machine

Установка docker-machine


https://github.com/docker/machine/releases
... выбрать последний релиз ...
... скопировать скрипт ...
... sudo -i и установить скрипт...
docker-machine -v
Docs: https://docs.docker.com/machine/install-machine/
Docker-compose

Установка docker-compose


https://github.com/docker/compose/releases
... выбрать последний релиз ...
... скопировать скрипт ...
... sudo -i и установить скрипт...
docker-compose -v
Docs: https://docs.docker.com/compose/install/
Установка на Windows
Установка на Windows Устанавливаем Docker-Desktop CE для Windows Docker-desktop.

Параметры виртуализации настраиваются в программе Hyper-V Manager

Устанавливаем Docker-toolbox

doc ker-machine start
docker-machine env default
docker-machine env default
Для работы в Windows Docker требует поддержку виртуализации. Включается в настройках BIOS
Установка на Mac OS
Установка на Mac OS Download desktop app

bash-completion

brew install bash-completion
sudo curl -L https://raw.githubusercontent.com/docker/machine/v0.16.0/contrib/completion/bash/docker-machine.bash -o `brew --prefix`/etc/bash_completion.d/docker-machine
docker Tab x2
Запуск контейнеров

Контейнер-сервер

sudo docker run --name docker-nginx -p 80:80 nginx
docker run nginx - какой контейнер создаем и запускаем (будет скачан с DockerHub)

Будет присвоен uniq id

--name docker-nginx - кастомное имя, которое мы присваиваем контейнеру

-p 80:80 - порт (localhost или 0.0.0.0:80)

Запуск в фоне (флаг -d)

sudo docker run --name docker-nginx -p 80:80 --detach (-d) nginx

Список запущенных контейнеров (всех):

docker container ls (-a)
docker ps (-a)

Запуск\остановка контейнера:

docker container run\stop CONTAINER_ID

Удаление контейнера:

Запущенный контейнер можно удалить только с -f

docker container rm CONTAINER_ID
docker container rm -f CONTAINER_ID

Логи:

docker container logs cont_name

Набор контейнеров для веб-сервера

  • Название | Порт
  • nginx (80:80)
  • httpd (8080:80 apache HTTP server)
  • mysql (3306:3306) (install with -e flag)
  • -d -p 3306:3306 --name db -e MYSQL_RANDOM_ROOT_PASSWORD=yes

Как зайти в запущенный контейнер через терминал

docker container exec -it cont_name bash
Когда запускаем команду run container
  1. Локальный поиск этого образа
  2. Удаленный поиск на DockerHub
  3. Скачивание последней версии с DockerHub
  4. Создаётся docker-контейнер
  5. Присваивается виртуальный IP
  6. Открывается порт на этом виртуальном IP
  7. Запускается контейнер
ps aux - список запущенных процессов

Образ

(image)
Много контейнеров может лежать в образе http://hub.docker.com/ - репозитории для docker-образов
Docker-команды
Список комманд docker
Шаблон docker <command> <sub-command> (options)
Информация docker info
Добавить группу и пользователя // добавить группу sudo groupadd docker // добавить пользователя в группу sudo usermod -aG docker username // узнать username sudo whoami
Посмотреть образы и/или контейнеры // запущенные docker ps // установленные docker ps -a // посмотреть только образы docker image ls (--all) // посмотреть только контейнеры docker container ls (--all) NAMES - имена контейнеров
Запустить указанные контейнеры docker start cont_name1 cont_name2
Остановить контейнеры docker stop cont_name1 cont_name2 // остановить все docker stop $(docker ps -q)
Перезапуск docker docker service docker restart

Real use on projects

docker stop $(docker ps -q -a)
docker rm -f
docker-compose pull
docker-compose up -d
  1. Остановить контейнеры внутри проекта
  2. Удалить
  3. Скачать
  4. Запустить